package com.cy.service.impl;

import com.alibaba.fastjson.JSON;
import com.auth0.jwt.interfaces.DecodedJWT;
import com.cy.entity.dto.VerifyDto;
import com.cy.service.VerifyService;
import com.cy.util.JWTUtils;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.Map;

/**
 * 解析token实现类
 * @Author：Aleven
 * @description: 将前端携带的token解析并存储至VD中
 * @Date：2024/12/23 11:38
 */
@Service
public class VerifyServiceImpl implements VerifyService {


    @Override
    public VerifyDto verifyToken(HttpServletRequest request) throws Exception {
        String token = request.getHeader("token"); // 从请求头获取token
        DecodedJWT verify = JWTUtils.verify(token);
        // 将解析后的信息存储到vd中
        VerifyDto vd = new VerifyDto();
        vd.setUserId(Integer.valueOf(verify.getClaim("userId").asString())); // 转换为字符串再转成整数
        vd.setUsername(verify.getClaim("username").asString());
        vd.setRoleID(Integer.valueOf(verify.getClaim("roleID").asString())); // 转换为字符串再转成整数
        return vd;
    }

}
